Memory modules associated with computing devices at a high level are used for processing two general categories of data—graphics and general data. Examples of processing graphics include displaying an image on a screen while examples of processing general data other than graphics include processing financial data, word document processing, etc. Memory modules associated with processing graphics include a data mask (DM) DIMM (DM-DIMM). DM-DIMMs are specifically designed to improve memory usage of the dynamic access random memory (DRAMs) within the DM-DIMMs. Such DM-DIMMs have a specific pin-out interface that can only interface with a memory controller which is particularly designed to interface with a DM-DIMM. One reason for a custom memory controller to only interface with a DM-DIMM is to provide fast read and write operations to the DRAMs of the DM-DIMM when processing graphics. The fast read and write operations to the DRAMs of the DM-DIMM is accomplished by having an individual DM bit signal associated with the data lanes (or bus) for each DRAM of the DM-DIMM. One purpose of the DM bit signal is to mask the associated data lanes to avoid unnecessary write operations to the DRAM associated with the DM bit signal.
For example, if a small or a visually negligible portion of an image is to be updated with new data while the rest of the image is to remain the same, then a final new image does not need to be computed and re-stored in the DM-DIMM. In such a case, the DM bit signal for the DRAM is asserted to stop any update to the image data in the DRAM. Such a data mask bit signal saves intensive read and write operations on the DRAM because the final image did not need to change for its small or a visually negligible update.
Conversely, memory modules used for reading and storing general data other than graphics cannot be masked out because of a small or visually insignificant change. For example, if only one digit changes in a spreadsheet of financial data, such a digit cannot be masked out because it happens to be a small percentage of the entire financial data in the spreadsheet. Masking the entire financial data because of a change in one digit may result in an incorrect financial analysis based on the masked financial data. Such memory modules may include error correction capability via error correction code (ECC). The ECC may be used to scrub any incorrect data in the DRAMs of the DIMM so that the data in the DIMM is always correct. Such memory modules are called ECC-DIMMs and have a specific pin-out interface to interface with particular memory controllers called ECC memory controllers.
As computer form/structure is becoming compact, separate memory controllers on a computer motherboard to interface with different/heterogeneous types of DIMMs result in larger motherboard size area. Examples of heterogeneous DIMMs include DM-DIMM, ECC-DIMM, etc. Furthermore, a user of a computer is not able to interface the memory controller of the computer with different/heterogeneous DIMMs because the memory controller has a specific pin-out interface and logic (hardware and/or software) to interface with only one kind of DIMM rather than heterogeneous DIMMs. Plugging a DM-DIMM with a controller designed for ECC-DIMM only or vice versa may result into catastrophic system failure from, for example, power/ground signal shorting caused by different pin interface for power/ground pins for DM-DIMM and ECC-DIMM.